package com.iwhalecloud.citybrain.flow.platform.manager.domain.repository;

import com.iwhalecloud.citybrain.flow.platform.manager.common.ResponseResult;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.exception.EventCallException;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.ProcessQueryVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.eventconfig.EventExceptionDomain;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.model.EventResponse;

import java.util.List;

/**
　　* @description: 事件异常数据持久化
　　* @author shenrm
　　* @date 2022/5/9 17:50
　　*/
public interface FlowEventExceptionRepository {

    /**
     * 新增事件异常信息
     *
     * @param eventException 事件异常信息
     * @return 是否成功
     */
    void insertEventException(EventExceptionDomain eventException);

    /**
     * 根据条件查询，返回所有符合要求的事件列表
     *
     * @param processQueryVo
     * @return 事件异常信息列表
     */
    List<EventExceptionDomain> queryEventExceptionList(ProcessQueryVo processQueryVo);


    /**
     * restful请求
     *
     * @param requestUrl
     * @param requestBody
     * @throws Exception
     */
    EventResponse restTemplateRequest(String requestUrl, String requestBody,int id) throws EventCallException;

    /**
     * 更新字段
     *
     * @param eventException
     * @return
     */
    int updateByPrimaryKeySelective(EventExceptionDomain eventException);

    ResponseResult processEventException(ProcessQueryVo processQueryVo);

}
